草庐IT

javascript - 加载时重置 Ember 组件

全部标签

ruby-on-rails - 如何在 Ruby 中为模型创建延迟加载属性?

我想创建一个延迟加载的属性,它返回模型上的一个集合,我该怎么做?我不想为此创建关联。所以我希望它返回一个集合,如果集合还没有被初始化然后访问数据库,返回行,然后初始化它。如果它运行一次,则无需再次运行它,因为下一个页面请求将重新开始。 最佳答案 添加实例属性(例如@my_attribute)然后定义defmy_attribute@my_attribute||=initialize_my_attributeend(注意:initialize_my_attribute是您实现的函数/方法,它将加载您想要的值。)这是如何工作的:该属性以一

Ruby 对象字面量(ala javascript)

在ruby中你可以去a={}a['a']=82a['b']='foo'putsa['a']#82我希望我可以使用点符号,例如javascript。将a.a#82有没有办法在ruby​​中构建对象文字并使用点表示法访问它们? 最佳答案 您可以创建一个Struct.A=Struct.new(:a,:b)a=A.new(82,'foo')putsa.a#=>82编辑:你甚至可以做到a={}a['a']=82a['b']='foo'Struct.new(*a.keys).new(*a.values)

ruby-on-rails - Standalone ruby​​ -- 如何从database.yml加载不同环境

我有一个修改数据库中记录的后台进程。模型使用如下方式连接到数据库:dbconfig=YAML::load(File.open('database.yml'))ActiveRecord::Base.establish_connection(dbconfig["development"])classClcar所有模型类的顶部都有这些行。我同意这是一种糟糕的做法。有没有更好的方法来连接到模型类?如何将连接传递给模型?我希望能够在不同的环境(比如“生产”)中运行我的后台进程。我该如何实现? 最佳答案 我会在您的后台进程开始时设置一次连接。一

ruby - 重置 IRB 控制台

如何告别在irbsession中定义的所有常量、对象等,回到干净的状态?“在”是指不操纵子session。 最佳答案 类型exec($0)在您的irb控制台session中。 关于ruby-重置IRB控制台,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/10271676/

ruby - 如何使用( ruby ) Rack 中间件组件设置 cookie?

我正在为需要有条件地设置cookie的Rails应用编写Rack中间件组件。我目前正在尝试设置cookie。通过谷歌搜索,这似乎应该可行:classRackAppdefinitialize(app)@app=appenddefcall(env)@status,@headers,@response=@app.call(env)@response.set_cookie("foo",{:value=>"bar",:path=>"/",:expires=>Time.now+24*60*60})[@status,@headers,@response]endend它不会给出错误,但也不会设置coo

ruby-on-rails - 无法加载此类文件 — ruby​​gems.rb

要打开这个项目(revel),我需要使用ruby​​-2.1.2。我同时安装了ruby​​-2.1.0和ruby​​-2.1.2,但我认为2.1.2版本由于某种原因已损坏,我似乎无法使用它。|~/desktop/ix/projects/revel>rvmuse2.1.2Using/Users/lianoosh/.rvm/gems/ruby-2.1.2:1:in`require':cannotloadsuchfile--rubygems.rb(LoadError)from:1:in`'|~/desktop/ix/projects/revel>gemlist:1:in`require':c

ruby - 将 Ruby 类加载到应用程序中的最佳方法是什么?

目前我正在使用require命令将Ruby类加载到每个类文件中,例如:requireFile.join(File.dirname(__FILE__),'observation_worker')requireFile.join(File.dirname(__FILE__),'log_worker')对于每个类,我都定义了它需要的类。如果我可以在我的应用程序的入口点执行此操作,那就太好了。有没有一种在应用程序启动时加载所有Ruby类的简单方法? 最佳答案 如果您对代码所在的位置有一个比较清晰的目录结构,您可以将特定的目录路径添加到加载路

ruby - 从 Cucumber/Capybara 测试中执行 JavaScript

似乎Selenium有一个名为JavascriptExecutor的功能,它可以直接在页面上执行JavaScript。然而,我的Cucumber/Capybara测试似乎没有这样的东西。如何从我的Cucumber测试中执行任意JavaScript? 最佳答案 Capybara有两种执行javascript的方法#execute_script和#evaluate_script。两者都可以在以下位置找到:http://rubydoc.info/github/jnicklas/capybara/master/Capybara/Seleni

ruby - 如何像在 Javascript 中一样在 Ruby 中动态创建对象及其方法?

我最近发现在Ruby中动态创建对象和方法是一件很费力的事情,这可能是因为我有Javascript背景经验。在Javascript中,您可以动态创建对象及其方法,如下所示:functionsomewhere_inside_my_code(){foo={};foo.bar=function(){/**dosomething**/};};如何在Ruby中完成上述语句(与在Javascript中一样简单)? 最佳答案 您可以使用单例方法实现此目的。请注意,您可以对所有对象执行此操作,例如:str="Ilikecookies!"defstr.

ruby-on-rails - 使用 Rails Assets 管道在 JavaScript 文件中编码问题

我正在使用Rails3.1和Assets管道(ruby1.9.2)。在尝试提供具有utf-8编码字符串的javascriptjs.erb文件时出现以下错误invalidbytesequenceinUS-ASCII我在我的environment.rb文件中设置了Encoding.default_external="UTF-8"。我如何让Assets管道以不同的编码提供服务?编辑仅当我在文件外部生成utf-8字符时才会出现该错误(在本例中是通过从数据库查询)。如果我添加,错误就会消失到文件的顶部。我猜这里会进行某种编码猜测,但如果没有那种骇人听闻的解决方案,我该如何避免呢?